package demo7;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/*
* 如果当前类是单例模式，那么Spring会在容器启动时，创建一个对象，
* 如果当前类是多例模式，那么Spring会在调用getBean()方法时，创建一个对象
* */


@Component
//@Scope("prototype")
public class Person {
    private String name;

    public Person() {
        //构造器是一个对象生命周期中的第一个被调用的函数
        System.out.println("1,Person()被调用了");
    }

    public String getName() {
        return name;
    }

    //Spring会在对象实例化完毕后陆续调用set方法利用@Value注解为属性赋值
    @Value("张三")
    public void setName(String name) {
        System.out.println("2,setName()被调用了");
        this.name = name;
    }

    //@PostConstruct //对象创建并赋值之后调用的方法
    //@PreDestroy //对象销毁之前调用的方法
}
